package edu.eas.common.constant;

/**
 * 权限相关常量定义
 *
 * @author cql
 */
public interface AuthConstant {

    /**
     * JWT存储权限前缀
     */
    String AUTHORITY_PREFIX = "ROLE_";

    /**
     * JWT存储权限属性
     */
    String AUTHORITY_CLAIM_NAME = "authorities";

    /**
     * client_id 参数名称
     */
    String CLIENT_ID_PARAMETER_NAME = "client_id";

    /**
     * user_type 参数名称
     */
    String USER_TYPE_PARAMETER_NAME = "user_type";

    /**
     * 后台管理接口路径匹配
     */
    String ADMIN_URL_PATTERN = "/eas-admin/**";

    /**
     * 学生管理接口路径匹配
     */
    String STUDENT_URL_PATTERN = "/eas-student/**";

    /**
     * 教师管理接口路径匹配
     */
    String TEACHER_URL_PATTERN = "/eas-teacher/**";

    /**
     * 后台管理client_id
     */
    String ADMIN_CLIENT_ID = "admin-app";

    /**
     * 学生管理client_id
     */
    String STUDENT_CLIENT_ID = "student-app";

    /**
     * 教师管理client_id
     */
    String TEACHER_CLIENT_ID = "teacher-app";

    /**
     * 学生
     */
    Integer USER_TYPE_STUDENT = 0;

    /**
     * 教师
     */
    Integer USER_TYPE_TEACHER = 1;

    /**
     * 管理员
     */
    Integer USER_TYPE_ADMIN = 2;

    /**
     * Redis缓存权限规则key
     */
    String RESOURCE_ROLES_MAP_KEY = "auth:menuRolesMap";

    /**
     * 认证信息Http请求头
     */
    String JWT_TOKEN_HEADER = "Authorization";

    /**
     * JWT令牌前缀
     */
    String JWT_TOKEN_PREFIX = "Bearer ";

    /**
     * 用户信息Http请求头
     */
    String USER_TOKEN_HEADER = "user";


}
